/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControleAcademico.Model.Pojo;

import java.util.*;

/**
 *
 * @author arthur
 * @author renan
 * @author tais
 * @author vinicius
 */
public class Turma {
    
    
    // Atributos
    private int ano;
    private int periodo;
    private String local;
    private String horario;
    private int numeroVagas;
    private Disciplina disciplina;
    private ArrayList<Atividade> atividades;
    private ArrayList<Aluno> alunos;
    private ArrayList<Professor> professores;
    private int id;
    
    
    // Metodos
    public int getAno(){return this.ano;}
    public void setAno(int ano){this.ano = ano;}
    public int getPeriodo(){return this.periodo;}
    public void setPeriodo(int periodo){this.periodo = periodo;}
    public String getLocal(){return this.local;}
    public void setLocal(String local){this.local = local;}
    public String getHorario(){return this.horario;}
    public void setHorario(String horario){this.horario = horario;}
    public int getNumeroVagas(){return this.numeroVagas;}
    public void setNumeroVagas(int numeroVagas){this.numeroVagas = numeroVagas;}
    public int getId(){return this.id;}
    public void setId(int id){this.id = id;}
    public Disciplina getDisciplina(){return this.disciplina;}
    public void setId(Disciplina disciplina){this.disciplina = disciplina;}
        public ArrayList<Aluno> getAlunos() {
        return alunos;
    }        
    
    public Turma (int ano, int periodo, String local, String horario, 
            int numeroVagas, Disciplina disciplina,ArrayList<Professor> professores, int id) {
        
        this.ano = ano;
        this.periodo = periodo;
        this.local = local;
        this.horario = horario;
        this.numeroVagas = numeroVagas;
        this.disciplina = disciplina;
        this.id = id;
        this.professores = new ArrayList<Professor>();
        this.professores.addAll(professores);
    }
   
    public void lancarFalta(Aluno aluno, int faltas) {
        this.disciplina.buscaAluno(aluno).lancarFalta(faltas);
    }
    
    
    
    @Override
    public boolean equals(Object obj) {
        
        if(this == obj) {
            return true;
        }
        
        if(!(obj instanceof Turma)) {
            return false;
        }
        
        
	Turma c = (Turma) obj;
        String horario1 = c.getHorario();
        String horario2 = this.getHorario();
        
        String local1 = c.getLocal();
        String local2 = this.getLocal();
        
        if((horario1.equals(horario2) == true) && (local1.equals(local2) == true)) {
            return true;
        } else {
            return false;
        }
	
    }
    

    @Override
    public String toString() {
        return ("Id: " + this.getId() + "\tano: " + this.getAno() + "\t"
                + this.getPeriodo() + "o periodo " + "\tLocal:" + this.getLocal()
                        + "Número vagas: " + this.getNumeroVagas() + "\t"
                        + "Disciplina " + this.getDisciplina().toString());
                        
    }
}
